package com.liujit.bms.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.liujit.bms.admin.domain.model.BlogArticle;
import com.liujit.bms.admin.domain.params.BlogArticleParams;
import com.liujit.bms.admin.domain.query.BlogArticleQuery;
import com.liujit.bms.admin.domain.result.BlogArticleResult;
import com.liujit.common.domain.params.BaseParams;
import com.liujit.common.domain.result.PageBean;

/**
 * @Description 博客文章Service
 * @Author liujun
 * @Date 2021-07-03 14:54:49
 */
public interface BlogArticleService extends IService<BlogArticle> {

    /**
     * 根据博客文章分页查询条件，分页查询博客文章列表
     *
     * @param query 博客文章分页查询条件
     * @return 分页列表结果
     * @author: liujun
     * @date: 2021/6/23 5:02 下午
     */
    PageBean<BlogArticleResult> getPage(BlogArticleQuery query);

    /**
     * 根据博客文章添加/修改请求参数，添加/修改博客文章
     *
     * @param params 博客文章添加/修改请求参数
     * @return 添加/修改结果
     * @author: liujun
     * @date: 2021-07-03 14:54:49
     */
    Boolean save(BlogArticleParams params);

    /**
     * 根据博客文章id，查询博客文章
     *
     * @param id 博客文章id
     * @return 查询结果
     * @author: liujun
     * @date: 2021-07-03 14:54:49
     */
    BlogArticleResult get(Long id);

    /**
     * 根据博客文章id，查询博客文章详情
     *
     * @param id 博客文章id
     * @return 查询结果
     * @author: liujun
     * @date: 2021/7/9 10:21 上午
     */
    BlogArticleResult getDetail(Long id);

    /**
     * 根据博客文章删除请求参数，删除博客文章
     *
     * @param params 博客文章删除请求参数
     * @return 删除结果
     * @author: liujun
     * @date: 2021-07-03 14:54:49
     */
    Boolean del(BaseParams params);

    /**
     * 根据博客文章公开请求参数，公开博客文章
     *
     * @param params 博客文章公开请求参数
     * @return 公开结果
     * @author: liujun
     * @date: 2021/7/9 10:30 上午
     */
    Boolean open(BaseParams params);

    /**
     * 根据博客文章取消公开请求参数，取消公开博客文章
     *
     * @param params 博客文章取消公开请求参数
     * @return 取消公开结果
     * @author: liujun
     * @date: 2021/7/9 10:30 上午
     */
    Boolean cancelOpen(BaseParams params);

    /**
     * 根据博客文章置顶请求参数，置顶博客文章
     *
     * @param params 博客文章置顶请求参数
     * @return 置顶结果
     * @author: liujun
     * @date: 2021/7/9 10:30 上午
     */
    Boolean top(BaseParams params);

    /**
     * 根据博客文章取消置顶请求参数，取消置顶博客文章
     *
     * @param params 博客文章取消置顶请求参数
     * @return 取消置顶结果
     * @author: liujun
     * @date: 2021/7/9 10:30 上午
     */
    Boolean cancelTop(BaseParams params);
}
